﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>


//struct Stu
//{
//	char name[20];//名字
//	int age;//年龄
//	char sex[5];//性别
//	char id[20];//学号
//};
//int main()
//{
//	//按照结构体成员的顺序初始化
//	struct Stu s = { "张三", 20, "男", "20230818001" };
//	printf("name: %s\n", s.name);
//	printf("age : %d\n", s.age);
//	printf("sex : %s\n", s.sex);
//	printf("id : %s\n", s.id);
//
//	//按照指定的顺序初始化
//	struct Stu s2 = { .age = 18, .name = "lisi", .id = "20230818002", .sex = "女"};
//	printf("name: %s\n", s2.name);
//	printf("age : %d\n", s2.age);
//	printf("sex : %s\n", s2.sex);
//	printf("id : %s\n", s2.id);
//	return 0;
//}

//int test()
//{
//	int a = 1;
//	if ((*(char*)&a) == 1)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//
////写一个函数判断当前机器是大端还是小端，如果是小端返回1，如果是大端返回0.
//int main()
//{
//	int ret = test();
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}

//void test(int arr[], int sz, int* p1, int* p2)
//{
//	int tmp = 0;
//	for (int i = 0; i < sz; i++)
//	{
//		tmp ^= arr[i];
//	}
//	int pos = 0;
//	for (int i = 0; i < 32; i++)
//	{
//		if (((tmp >> i) & 1) == 1)
//		{
//			pos = i;
//			break;
//		}
//	}
//	for (int i = 0; i < sz; i++)
//	{
//		if (((arr[i] >> pos) & 1) == 1)
//		{
//			*p1 ^= arr[i];
//		}
//	}
//	*p2 = *p1 ^ tmp;
//}
//
////单身狗2
//int main()
//{
//	int arr[] = { 1,2,3,4,5,1,2,3,4,6 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int dog1 = 0;
//	int dog2 = 0;
//	test(arr, sz, &dog1, &dog2);
//	printf("%d %d\n", dog1, dog2);
//	return 0;
//}

//void test(int arr[], int sz, int* p1, int* p2)
//{
//	int tmp = 0;//5 ^ 6
//	for (int i = 0; i < sz; i++)
//	{
//		tmp ^= arr[i];
//	}
//	int pos = 0;
//	for (int i = 0; i < 32; i++)
//	{
//		if (((tmp >> i) & 1) == 1)
//		{
//			pos = i;
//			break;
//		}
//	}
//	int ret = 0;
//	for (int i = 0; i < sz; i++)
//	{
//		if (((arr[i] >> pos) & 1) == 1)
//		{
//			*p1 ^= arr[i];
//		}
//	}
//	*p2 = *p1 ^ tmp;
//	
//} 
//
////单身狗2
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,1,2,3,4 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int dog1 = 0;
//	int dog2 = 0;
//	test(arr, sz,&dog1, &dog2);
//	printf("%d %d", dog1, dog2);
//	return 0;
//}